import axios from 'axios'
import { ElMessage } from 'element-plus'
// import router from '@renderer/router/index';
// 测试环境
const BASE_API = 'http://88.88.88.232:8098' // import.meta.env.VITE_BASE_API; // 'http://127.0.0.1:8098'用户相关 /api  http://88.88.88.232:8098
const correct_API = '' //

const apiArr = [
  {
    service: null,
    baseURL: BASE_API
  },
  {
    service: null,
    baseURL: correct_API
  }
]

apiArr.map((v, index) => {
  v.service = axios.create({
    baseURL: v.baseURL, // api 的 base_url
    timeout: 60000
  })

  // request interceptor
  v.service.interceptors.request.use(
    (config) => {
      // console.log('---config',config);
      // const token = localStorage.getItem('token')
      const token = window.Application.PluginStorage.getItem('token')
      console.log('---token',token);
      // 设置请求头
      if (token) {
        config.headers.Token = token // 让每个请求携带自定义token 请根据实际情况自行修改
      }
      //post 情况 默认空对象
      if (!config.data) {
        // source.cancel('取消请求') // 取消其他正在进行的请求
        config.data = {}
      }
      return config
    },
    (error) => {
      return Promise.reject(error)
    }
  )

  // response interceptor
  v.service.interceptors.response.use(
    (res) => {
      // console.log('response',res);
      // debugger
      if (res.data.code !== 200) {
        // 401身份验证  403服务器拒绝访问
        if (res.data.code === 401 || res.data.code === 403) {
          ElMessage({
            message: res.data.message || '需要身份验证',
            type: 'error'
          })
          // console.log(router);
         // window.localStorage.clear()
         window.Application.PluginStorage.clear
          // source.cancel('需要身份验证'); // 取消其他正在进行的请求
          return Promise.reject(new Error(res.data.message || '需要身份验证'))
        }
        if (res.data.code === 503) {
          ElMessage({
            message: res.data.message || '退出登录成功！',
            type: 'success'
          })
        } else {
          //其他异常
          ElMessage({
            message: res.data.message || '接口异常',
            type: 'error'
          })
        }

        return Promise.reject(new Error(res.data.message || 'Error'))
      } else {
        return res.data.data
      }
    },
    (error) => {
      console.log('err2 ' + error) // for debug
      ElMessage({
        message: error || '接口异常',
        type: 'error'
      })
      return Promise.reject(error)
    }
  )
})

let userService = apiArr[0].service
let correctService = apiArr[1].service

export { userService, correctService }
